package com.loser.bizAnnotation;


import com.loser.util.DateConstant;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 双层缓存标记类
 *
 * @author loser
 * @date 2022/12/4 11:29
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface BizDoubleCache {

    /**
     * 缓存统一的前缀
     */
    String pre() default "";

    /**
     * 缓存对应的key
     */
    String value() default "";

    /**
     * 默认缓存时长为一分钟
     */
    BizLocalCache.TimeType timeType() default BizLocalCache.TimeType.MIN_1;

    /**
     * 缓存时长 默认 一个小时
     */
    long timeOut() default DateConstant.SECONDS_PER_HOUR;

    boolean isRequired() default true;

}
